/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package mascotrin;
import java.sql.*;
/**
 *
 * @author PcAbajo
 */
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class ConsultasSQL {
    public ConsultasSQL(String SQL,JTable jTable1)
    {
            // Creo el Strin de su Url
      		String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
			"databaseName=Mascotrin;integratedSecurity=true;";
//192.168.0.100
		// Declarar  los objectos JDBC.
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
                DefaultTableModel modelo = new DefaultTableModel();//creo un modelo de tabla                
               jTable1.setModel(modelo);//agrego el model de la tabla al jtable
                try {
                
        		// Establish the connection.
                    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                     con = DriverManager.getConnection(connectionUrl);
                     // Create and execute an SQL statement that returns some data.
                       stmt = con.createStatement();
            		rs = stmt.executeQuery(SQL); 
                      while (rs.next()){
                         // jTextArea1.setText(rs.getString("nombre"));
                     ResultSetMetaData metaDatos = rs.getMetaData();
                    // Se obtiene el número de columnas.
                    int numeroColumnas = metaDatos.getColumnCount();
                    // Se crea un array de etiquetas para rellenar
                    Object[] etiquetas = new Object[numeroColumnas];
                    Object [] fila = new Object[numeroColumnas]; // Cantidad de Columnas en la tabla
   // Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
   for (int i=0;i<numeroColumnas;i++)
   {
      fila[i] = rs.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
   }
  // Se obtiene cada una de las etiquetas para cada columna
                    for (int i = 0; i < numeroColumnas; i++)
                    {
                    // Nuevamente, para ResultSetMetaData la primera columna es la 1.
                 etiquetas[i] = metaDatos.getColumnLabel(i + 1);
                    }
                   modelo.setColumnIdentifiers(etiquetas);
                    // Se añade al modelo la fila completa.
                    modelo.addRow(fila); 
              
                  }
               }
                  // Handle any errors that may have occurred.
		catch (Exception e) {
                  e.printStackTrace();
                  JOptionPane.showMessageDialog(null,e.getMessage(),"ERROR",JOptionPane.ERROR_MESSAGE);
		}

		finally {
			if (rs != null) try { rs.close(); } catch(Exception e) {}
	    		if (stmt != null) try { stmt.close(); } catch(Exception e) {}
	    		if (con != null) try { con.close(); } catch(Exception e) {}
		}
    }

}
